#include "LinearInterpolation.h"
#include "QuadraticInterpolation.h"
#include "InterpolationOperatorFactory.h"

namespace {
	template <size_t DIM>
	InterpolationOperator<DIM>* CreateLinear() {
		return new LinearInterpolation<DIM>();
	}
	#define DIM 1
	const bool registed_Linear_1 = InterpolationOperatorFactory<DIM>::Instance()->RegisterOperator("Linear",
																								CreateLinear);
	#undef DIM
	
	#define DIM 2
	const bool registed_Linear_2 = InterpolationOperatorFactory<DIM>::Instance()->RegisterOperator("Linear",
																								CreateLinear);
	#undef DIM
	
	template <size_t DIM>
	InterpolationOperator<DIM>* CreateQuadratic() {
		return new QuadraticInterpolation<DIM>();
	}
	#define DIM 1
	const bool registed_Quadratic_1 = InterpolationOperatorFactory<DIM>::Instance()->RegisterOperator("Quadratic",
																								CreateQuadratic);
	#undef DIM
	
	#define DIM 2
	const bool registed_Quadratic_2 = InterpolationOperatorFactory<DIM>::Instance()->RegisterOperator("Quadratic",
																								CreateQuadratic);
	#undef DIM
}

